With the accelerating growth of both Internet and intranet communication, high bandwidth applications (such as streaming video), and large information databases, the need for networked storage systems has increased dramatically. Of particular concern is the performance level of networked storage, especially in high utilization use models.
In conventional architectures, computer data is mirrored or striped across the available storage volume resources, and the networked storage system controller/virtualizer maintains the indexing or addressing information necessary to maintain the data integrity, data synchronization, and read and write data across the mirrored or striped storage volumes. Conventional networked storage system architectures focus on providing enough data protection to ensure that networks can suffer high levels of storage volume degradation without loss of data. However, one of the limitations to this configuration is the necessity of trading-off cost and performance. While networked storage system architectures protect storage volume integrity, they do not necessarily provide any performance optimization methods for storage volume and communication channel utilization. This means that when the networked storage system controller/virtualizer receives commands, little or no consideration is given to efficient and speedy routing and retrieval of the data based on load balancing.
Occasional slowness of processes and the inconvenience of storage volume replacement have become accepted as the costs of having the data protection provided by high reliability networked storage system configurations. More specifically, networked storage system configurations are only as fast as their internal communications and the efficiency of their reading, writing, and routing of mirrored and striped data. It has long been accepted that decreased speed and efficiency are the prices for the safety net provided by networked storage system configuration. In a conventional networked storage system architecture there are several storage volumes connected with several communication channel options, such as FibreChannel Arbitrated Paths. When a request or command for data is executed, there is generally no sensitivity to the overall bandwidth loads of the communication channels.
Some commercially available networked storage system architectures provide load balancing by using some awareness of the number of commands or functions being performed or maintained per storage volume. However, such features are typically implemented using a counting function that does fully appreciate differing sizes of commands and requests that might skew the load balance even if the count were identical. There is a need for a networked storage system configuration capable of providing the same level of data protection of conventional networked storage system configurations while providing load-balancing services for increased performance.